package models

import "time"

// TaskStatusHistory 存储任务状态变更历史
type TaskStatusHistory struct {
	*GormModel // 嵌入基础模型 (Id uint PK, CreatedAt, UpdatedAt, DeletedAt) - 使用自增 ID 作为主键 (BIGSERIAL -> uint64)
	// HistoryID uint64 `gorm:"primaryKey"` // 如果需要 BIGSERIAL，可以覆盖 Id
	TaskID    string     `gorm:"type:varchar(36);not null;index" json:"task_id"` // 外键字段 (假设 TaskID 是 string UUID)
	Status    TaskStatus `gorm:"type:varchar(50);not null" json:"status"`        // 使用 string 存储状态
	ChangedAt time.Time  `json:"changed_at"`                                     // 手动添加时间戳
	Details   string     `gorm:"type:text" json:"details"`

	// --- 关联关系 ---
	// 修改关联关系定义
	// Task Task `gorm:"foreignKey:TaskID;references:TaskID;constraint:OnDelete:CASCADE"` // references 指向 Task 的主键 TaskID
}

// TableName 自定义表名
func (TaskStatusHistory) TableName() string {
	return "task_status_history"
}
